/*
Пример АЦП для AT90S8535 на
плате Atmel STK500 

CodeVisionAVR C Compiler
© Copyright 2001-2002 HP InfoTech S.R.L.
www.hpinfotech.ro

Установите следующие перемычки на плате STK500:
VTARGET, AREF, RESET, XTAL1, OSCSEL: 1-2

Соедините разъемы PORTB и LEDS с помощью
10-жильного плоского кабеля

Соедините разъемы ISP6PIN и SPROG3 с помощью
6-жильного плоского кабеля

AT90S8535 должен быть расположен в панельке SCKT3100A3

В AVR Studio в окне Tools|STK500|Board установить:
- VTarget=5.0V
- ARef=5.0V
- Oscillator=3.69MHz

Подайте положительное DC напряжение в дипазоне 0.. 5.0V
между выводами PA0 и GND разъема PORTA
*/

// Определения регистров ввода/вывода для AT90S8535
#include <90s8535.h>
// функции задержки
#include <delay.h>

#define ADC_VREF_TYPE 0x00

// Программа обслуживания прерывания АЦП
interrupt [ADC_INT] void adc_isr(void)
{
// Светодиоды отображают 8 наиболее
// значимых битов АЦП
PORTB=(unsigned char) ~(ADCW>>2);
// задержка 20 мс
delay_ms(20);
// Начало нового АЦ преобразования
ADCSR|=0x40;
}

void main(void)
{
// Инициализация Порта B
PORTB=0xFF; // все выходы
DDRB=0xFF;  // все светодиоды первоначально выключены

// Инициализация АЦП
// Тактовая частота АЦП: 57.656 кГц
// Прерывания АЦП: Вкл
ADCSR=0x8E;

// Глобальное разрешение прерываний
#asm("sei")

// Выберем вход 0 АЦП
ADMUX=0;

// Запустим первое АЦ преобразование
ADCSR|=0x40;

// Вся работа делается посредством АЦП прерываний
while (1);
}
